import axios from 'axios'
import { getToken } from './tools'
// 创建axios实例
const instance = axios.create({
  baseURL: '/api',
  timeout: 5000
})
// 添加拦截器
// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 设置配置信息
    // 在请求头中添加添加token，注意：token前必须拼接bearer，多出一个空格

    config.headers.Authorization = 'bearer ' + getToken()
    return config
  },
  (err) => {
    return Promise.reject(err)
  }
)
// 响应拦截器
instance.interceptors.response.use(
  (res) => {
    // 设置响应
    // 添加响应
    res.headers.Server = 'Node.js'
    return res
  },
  (err) => {
    return Promise.reject(err)
  }
)
/*
// 测试请求
// get请求，把参数放入到params
instance.get('/news/article/list',{params:{pno : 2 , count: 5}}).then(res=>{
  console.log(res);
})
//post请求
instance.post('/users/login',{uname:'admin',upwd:'1234'}).then(res=>{
  console.log(res);
})
*/

// 导出
// get请求封装
export const get = (url, params) => {
  // 拿到响应结果中的data,data就是结果的结果
  return instance.get(url, { params }).then((res) => res.data)
}
// post请求封装
export const post = (url, data) => {
  return instance.post(url, data).then((res) => res.data)
}
// put请求封装
export const put = (url, data) => {
  return instance.put(url, data).then((res) => res.data)
}
// delete请求封装
export const del = (url, params) => {
  return instance.delete(url, { params }).then((res) => res.data)
}
